1. Field of the Invention
The field of the invention relates to data processing and in particular to diagnostic mechanisms for monitoring data processing operations.
2. Description of the Prior Art
There are a number of situations where it is desirable to keep track of the processing being performed by a processing circuit. For example, such information is useful during the development of data processing systems. An example of a tool that may be used to assist in such a process is a tracing tool.
Tracing the activity of a data processing system whereby a trace stream is generated that includes data representing the step-by-step activity within the system is a highly useful tool in system development. Such tracing tools use a variety of means for tracing the program flow including embedded trace macrocells (ETM, a trademark of ARM Limited, Cambridge) which are present on the chip whose processing is being monitored.
One problem associated with tracing the activity of a processing system is the amount of data that is generated and needs to be collected and also the fact that this data is not generated uniformly, such that during some clock cycles more trace data is generated than during others. To address this problem and ensure that the trace data can be consistently captured and output the trace data is buffered after capture and before output. In order to ensure that no data is lost by buffer overflow the buffer must be capable of receiving the largest amounts of trace data that may be generated. This is expensive in hardware.
Furthermore, the trace data is often generated in a sparse fashion, so that certain channels generate no trace data during several cycles. A data store with a data width sufficient to store the largest amount of data that can be generated in a single cycle is generally used. When less data is generated in order to efficiently store this data, the data must be packed together and rotated prior to storage in this wide data store. This is not only very expensive in pack and rotate functions, but also the routing requirements for the data items is considerable. With decreasing geometries this routing becomes even more problematic.
It would be desirable to be able to buffer the trace data prior to output without the need for large data stores and expensive routing, pack and rotate functions.